// pages/record-detail/record-detail.js
const util = require('../../utils/util')

Page({
  data: {
    record: null,
    loading: true
  },

  onLoad(options) {
    if (options.id) {
      this.loadRecord(options.id)
    } else {
      util.showToast('记录ID不存在')
      wx.navigateBack()
    }
  },

  // 加载记录详情
  async loadRecord(id) {
    try {
      this.setData({ loading: true })
      const res = await util.request(`/car-records/${id}`)
      
      if (res.code === 200) {
        this.setData({
          record: res.data,
          loading: false
        })
      } else {
        util.showToast(res.message || '加载失败')
        wx.navigateBack()
      }
    } catch (error) {
      console.error('加载记录详情失败:', error)
      util.showToast('加载失败，请重试')
      wx.navigateBack()
    }
  },

  // 编辑记录
  editRecord() {
    wx.navigateTo({
      url: `/pages/create-record/create-record?id=${this.data.record.id}`
    })
  },

  // 删除记录
  async deleteRecord() {
    const confirm = await util.showModal('确认删除', '确定要删除这条用车记录吗？')
    if (!confirm) return
    
    try {
      util.showLoading('删除中...')
      const res = await util.request(`/car-records/${this.data.record.id}`, {
        method: 'DELETE'
      })
      
      if (res.code === 200) {
        util.showToast('删除成功', 'success')
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
      } else {
        util.showToast(res.message || '删除失败')
      }
    } catch (error) {
      console.error('删除失败:', error)
      util.showToast('删除失败，请重试')
    } finally {
      util.hideLoading()
    }
  },

  // 拨打电话
  makePhoneCall(e) {
    const phone = e.currentTarget.dataset.phone
    if (!phone) {
      util.showToast('电话号码不存在')
      return
    }
    
    wx.makePhoneCall({
      phoneNumber: phone,
      fail: (err) => {
        console.error('拨打电话失败:', err)
        util.showToast('拨打电话失败')
      }
    })
  },

  // 格式化金额
  formatAmount(amount) {
    return parseFloat(amount || 0).toFixed(2)
  },

  // 格式化日期
  formatDate(dateStr) {
    if (!dateStr) return ''
    const date = new Date(dateStr)
    return util.formatDate(date)
  },

  // 格式化用车类型
  formatCarType(type) {
    const types = {
      'daily_rent': '日租',
      'fixed_price': '一口价'
    }
    return types[type] || type
  },

  // 格式化布尔值
  formatBoolean(value) {
    return value ? '是' : '否'
  }
})